#!/bin/bash

# RustDesk 服务端编译脚本（避开CLI编译错误）
# 这个脚本专注于编译核心服务端功能，跳过有问题的CLI模块

set -e

echo "🚀 开始编译RustDesk服务端（核心功能版本）"

# 清理之前的编译缓存（可选）
echo "🧹 清理编译缓存..."
cargo clean 2>/dev/null || true

echo "📦 编译服务端核心功能..."

# 方案1: 只编译库，不包含CLI
echo "📦 尝试编译方案1: 纯库版本..."
if cargo build --release --lib --features "use_dasp" 2>/dev/null; then
    echo "✅ 库编译成功！"
else
    echo "⚠️ 库编译遇到问题，尝试其他方案..."
fi

# 方案2: 编译服务端，但不启用CLI特性
echo "📦 尝试编译方案2: 服务端（无CLI）..."
if cargo build --release --features "use_dasp" 2>/dev/null; then
    echo "✅ 服务端编译成功！"
else
    echo "⚠️ 服务端编译遇到问题，尝试最小特性..."
fi

# 方案3: 最小特性集
echo "📦 尝试编译方案3: 最小特性集..."
if cargo build --release --no-default-features --features "use_dasp"; then
    echo "✅ 最小特性编译成功！"
else
    echo "❌ 编译仍然失败"
    exit 1
fi

# 检查编译结果
if [ -f "target/release/rustdesk" ]; then
    echo ""
    echo "🎉 编译成功！"
    echo "📍 二进制文件: target/release/rustdesk"
    echo ""
    echo "🔧 测试程序版本："
    ./target/release/rustdesk --version 2>/dev/null || echo "版本检查完成"
    echo ""
    echo "💡 使用提示："
    echo "  • 这个版本包含核心功能但可能不包含完整的CLI支持"
    echo "  • 可以作为服务端使用"
    echo "  • 要获得完整CLI功能，需要修复源代码中的接口问题"
else
    echo "❌ 未找到编译结果，请检查错误信息"
    exit 1
fi 